// 版权所有2011 Go作者。保留所有权利。
// 此源代码的使用受BSD样式
// 许可证的约束，该许可证可以在许可证文件中找到。

package types

// 数组表示数组类型。
type Array struct {
	len  int64
	elem Type
}

// NewArray返回给定元素类型和长度的新数组类型。
// 负长度表示未知长度。
func NewArray(elem Type, len int64) *Array { return &Array{len: len, elem: elem} }

// Len返回数组a的长度。
// 如果结果为负数，则表示长度未知。
func (a *Array) Len() int64 { return a.len }

// Elem返回数组a的元素类型。
func (a *Array) Elem() Type { return a.elem }

func (t *Array) Underlying() Type { return t }
func (t *Array) String() string   { return TypeString(t, nil) }
